
/*

  Copyright (c) 2005-2009, Alexey Sudachen, alexey@sudachen.name

*/

#if !defined __473E1AB8_C217_415D_885B_427068FD2ECF__
#define __473E1AB8_C217_415D_885B_427068FD2ECF__

#define MACRO_TEMPLATE_ARGUMENTS0
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS0
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS0
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS0

#define MACRO_TEMPLATE_ARGUMENTS1         class MACRO_A1
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS1  MACRO_A1
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS1   MACRO_A1 MACRO_a1
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS1  MACRO_a1

#define MACRO_TEMPLATE_ARGUMENTS2         MACRO_TEMPLATE_ARGUMENTS1,        class MACRO_A2
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS2  MACRO_TEMPLATE_FNTYPE_ARGUMENTS1, MACRO_A2
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS2   MACRO_TEMPLATE_FNDEF_ARGUMENTS1,  MACRO_A2 MACRO_a2
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS2  MACRO_TEMPLATE_FNCALL_ARGUMENTS1, MACRO_a2

#define MACRO_TEMPLATE_ARGUMENTS3         MACRO_TEMPLATE_ARGUMENTS2,        class MACRO_A3
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS3  MACRO_TEMPLATE_FNTYPE_ARGUMENTS2, MACRO_A3
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS3   MACRO_TEMPLATE_FNDEF_ARGUMENTS2,  MACRO_A3 MACRO_a3
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS3  MACRO_TEMPLATE_FNCALL_ARGUMENTS2, MACRO_a3

#define MACRO_TEMPLATE_ARGUMENTS4         MACRO_TEMPLATE_ARGUMENTS3,        class MACRO_A4
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS4  MACRO_TEMPLATE_FNTYPE_ARGUMENTS3, MACRO_A4
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS4   MACRO_TEMPLATE_FNDEF_ARGUMENTS3,  MACRO_A4 MACRO_a4
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS4  MACRO_TEMPLATE_FNCALL_ARGUMENTS3, MACRO_a4

#define MACRO_TEMPLATE_ARGUMENTS5         MACRO_TEMPLATE_ARGUMENTS4,        class MACRO_A5
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS5  MACRO_TEMPLATE_FNTYPE_ARGUMENTS4, MACRO_A5
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS5   MACRO_TEMPLATE_FNDEF_ARGUMENTS4,  MACRO_A5 MACRO_a5
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS5  MACRO_TEMPLATE_FNCALL_ARGUMENTS4, MACRO_a5

#define MACRO_TEMPLATE_ARGUMENTS6         MACRO_TEMPLATE_ARGUMENTS5,        class MACRO_A6
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS6  MACRO_TEMPLATE_FNTYPE_ARGUMENTS5, MACRO_A6
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS6   MACRO_TEMPLATE_FNDEF_ARGUMENTS5,  MACRO_A6 MACRO_a6
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS6  MACRO_TEMPLATE_FNCALL_ARGUMENTS5, MACRO_a6

#define MACRO_TEMPLATE_ARGUMENTS7         MACRO_TEMPLATE_ARGUMENTS6,        class MACRO_A7
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS7  MACRO_TEMPLATE_FNTYPE_ARGUMENTS6, MACRO_A7
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS7   MACRO_TEMPLATE_FNDEF_ARGUMENTS6,  MACRO_A7 MACRO_a7
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS7  MACRO_TEMPLATE_FNCALL_ARGUMENTS6, MACRO_a7

#define MACRO_TEMPLATE_ARGUMENTS8         MACRO_TEMPLATE_ARGUMENTS7,        class MACRO_A8
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS8  MACRO_TEMPLATE_FNTYPE_ARGUMENTS7, MACRO_A8
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS8   MACRO_TEMPLATE_FNDEF_ARGUMENTS7,  MACRO_A8 MACRO_a8
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS8  MACRO_TEMPLATE_FNCALL_ARGUMENTS7, MACRO_a8

#define MACRO_TEMPLATE_ARGUMENTS9         MACRO_TEMPLATE_ARGUMENTS8,        class MACRO_A9
#define MACRO_TEMPLATE_FNTYPE_ARGUMENTS9  MACRO_TEMPLATE_FNTYPE_ARGUMENTS8, MACRO_A9
#define MACRO_TEMPLATE_FNDEF_ARGUMENTS9   MACRO_TEMPLATE_FNDEF_ARGUMENTS8,  MACRO_A9 MACRO_a9
#define MACRO_TEMPLATE_FNCALL_ARGUMENTS9  MACRO_TEMPLATE_FNCALL_ARGUMENTS8, MACRO_a9

#endif // __473E1AB8_C217_415D_885B_427068FD2ECF__
